Skip to main content

Blob flie 剪切板

//Blob 转 ArrayBuffer

var bb = new Blob(['file:///Users/arick/Desktop/123.png'], { type: "image/png" })

var objecturl = window.URL.createObjectURL(bb);

var fr = new FileReader();

fr.onloadend = function (e) {

console.log(fr.result);

console.log(e.target.result);

}

fr.readAsArrayBuffer(bb);

Blob 转 file

var bb = new Blob(['file:///Users/arick/Desktop/123.png'], { type: "image/png" })

let files = new window.File([bb], "file.name.png", {type: "image/png"})
console.log(files);

Blob 转 url

var reader = new FileReader();
reader.onload = function (e) {
var dataURL = reader.result;
console.log(e.target.result);
}
reader.readAsDataURL(bb);

上传blob 或 file

function upload2(file)  {

const fd = new FormData()
fd.append('file', file)
fd.append('userName', 'usereeName')
fd.append('age','18')

// 获取某个控件的值
fd.get('userename') // ""

// 设置某个控件的值
fd.set('userename', '张三');



fetch('/upload', {
method: 'post',
headers: {
'2': 'multipart/form-data',
},
body: fd,
}).then(response => response.json())
.then((data) => {
console.log(data);
});

}

读取剪切板文件

async function getClipboardContents() {
try {
const clipboardItems = await navigator.clipboard.read();
for (const clipboardItem of clipboardItems) {
for (const type of clipboardItem.types) {

const blob = await clipboardItem.getType(type);

// console.log(URL.createObjectURL(blob));
if (type == "text/plain") {
//console.log(new Response(blob))
//const text = await (new Response(blob)).text()
//document.getElementById("outbox").innerText = text
}else if (type == "text/html"){
//console.log(new Response(blob))
document.getElementById("outbox2").innerHTML = await (new Response(blob)).text()
}
else if (type == "image/png"){
//console.log((new Response(blob)).body)
//console.log(new Request(blob))
//document.getElementById("img").src = URL.createObjectURL(blob);
//upload(blob)
}
}
}
} catch (err) {
console.error(err.name, err.message);
}
}